galcivfandomcom-20200213-history
Data Modding
This article deals with the specifics of modifying Galactic Civilization 2's XML files to create mods of the game. All of these files can be edited with any simple text editor (Notepad for example). All XML files discussed here are, in an English version of the game, located in: \galciv2\data\English A warning, though: DO NOT modify the XML files in the Metaverse directory (galciv2\metaversedata), as that will result in all Metaverse games being "cheat" flagged. TechTree.xml This is where the technology tree is stored. It's fairly straight forward and you can actually change this a lot. The AIValue determines how important that tech is to the AI. This is essentially the developer's judgement on how important a given technology is relative to its cost. So players who think the tech tree is "too big" or "boring" can go nuts and make their own. And with the mods directory, you'll be able to share it with other people. Think of Galactic Civilizations as a giant mod on a fairly generic 4X game engine. You can make it into anything you like without being a techie. GC2Types.xml. This is where all the components are stored. You can make your own hulls, ship parts, extras, etc. Example: Large Large hulls are the real capital ship class. They use 5 logistics but with lots of hitpoints they are very tough. 110 55 3 28 Large_0 Large_0 1 Large 5 Large Scale Building The parts you would care about are the Model and the thumbnail. In the \galciv2\gfx\models there are files that match this in this configuration: Sx_.X If you create a new model (see Graphics Modding), you should be able to name it S99_. The S and the number in the models directory determines which Style the hull is. That way, you can make some things that are only available for certain races. But bear in mind, if you add it here, you need to provide styles for other races unless you use the S99 at which point it's available for everyone. You can tweak the other numbers all you like. Raceconfig.xml This is where the player race data is stored. You can modify the various races as you wish. You can change the names, the graphics, the abilities, etc. For example, let's say you want to have really huge fleet battles in GalCiv II. To heck with balance. You could give every race a value of say 100 to start with. Then you could go back to the gc2types.xml and change the logistics used by different hulls. Tiny hulls could still use 2. Small 4. Medium 8. Large 12. Huge 20 as an example. Then you could load up the techtree.xml and change the logistics bonuses you get to fit your own design. Then you could really see your ultimate battles where there's hundreds of fighters, a few frigates and a couple of mother ships battling it out. Just make sure you have a powerful system. ;) -Super Ability- This is a Dark Avatar Setting and should NOT be put into Galactic Civ II. Example: 0 * 0 * Super Diplomat. Civilization is able to secure much better deals through negotiation that other civilizations. * 1 * Super Dominator. When they go to war, they receive a group of Corvette class ships. The number they receive is based on their military power. * 2 * Super Organizer. When they are attacked, all races of the same ethical alignment will come to their aid. * 3 * Super Warrior. When in battles, they get the first strike ability. That is, their ships attack first and if their opponent survives only then do they return fire. * 4 * Super Breeder. If their approval is 100% their population increases at 4X the normal rate * 5 * Super Isolationist. Can colonize barren worlds and no foreign ship can travel more than 3 spaces per turn in their area of influence. * 6 * Super Trader. Gets all the trade techs at start of game and gets 2X from trade. * 7 * Super Manipulator. Is very good at getting other races to go to war with each other. * 8 * Super Hive. Unlimited range and all factories are built in 1 week. * 9 * Super Adapter. Starts out with aquatic and toxic world technologies. * 10 * Super Annihilator. Can build spore ship which when used on a defenseless colony will eliminate all population and turn it into a toxic world of the same class. * 11 * Super Spy. Gets an agent to start with and worlds are immune from agents. GC2_Conversations.xml This is where all the conversations are stored. They are based on morality, context and whos talking to who. Example: 1 0 0 We welcome you to the stars, Human. While it may not seem it by my looks, the SPEAKING_RACE_NAME are a friendly civilization that wish peace and love for all. 1 Hail, Human traveler! The SPEAKING_RACE_NAME have made claims to many of these worlds. 2 So, this is a Human. Your skin looks... delicious. The SPEAKING_RACE_NAME loves good skin. I am sure in time that we will meet for dinner...#Beware, Humans. Your meddling ways are not appreciated.#Ah, Human. Good to see you up on your hind legs.#The galaxy is ours, Human. We were conquering and enslaving back before your kind had gotten out of the trees.#Be wary, Earther. The galaxy belongs to us. Interfere with our plans and we'll make you rue the day that you decided to walk upright. Those were the conversations possible when the Drengin are talking to the humans when the humans find them. Morality 0 is Good, 1 is Neutral and 2 is Evil. 2 is the most likely one, so there are #'s. That means there can be multiple things the Drengin say. Now, let's edit it a bit: 1 0 0 We welcome you to the stars, Human. While it may not seem it by my looks, the SPEAKING_RACE_NAME are a friendly civilization that wish peace and love for all.#Hi there. We are the SPEAKING_RACE_NAME. We would eat your skin a few years ago. However, a strange rift in space-time sent out powerful telepathic waves that changed our way of thinking. Now we're a peace-loving civilization :) I added a dialogue for the Drengin when they are good(as if THAT'S going to happen anytime soon). You noticed the fact that sometimes SPEAKING_RACE_NAME appeared, right? That means the name of the speaking race, in this case Drengin Empire. So "The SPEAKING_RACE_NAME loves good skin." would appear as "The Drengin Empire loves good skin.". YourEmpireName means what it's named. The numbers of the races are found at the Commonly used numbers page. MISC_FIRST_CONTACT means first contact dialogue(like in the example). B_DEMAND_EQUAL means demanding a tribute when you are (roughly) equally strong. B_DEMAND_STRONGER means demanding a tribute when you are stronger. B_DEMAND_WEAKER means deamnding a tribute even though you are weaker. TheirLeaderName means their leader name, TheirEmpireName means their empire name. YourLeaderName means your leader name, YourEmpireName means your empire name. PlanetImprovements.xml This file is already pretty well documented. You can add more improvements or tweak the ones that are there. Think the pacing should be faster or slower? No problem, tweak away. The "correct" way to write a mod is to edit the file and then place it in your "mods" folder, specifically in "C:\Documents and Settings\Administrator\My Documents\My Games\GalCiv2\Mods\Data\PlanetImprovements" on my hard drive (exact location may vary). OTHER BUGGY FEATURES: * Making your own trade goods does not work, and editing the trade goods provided by the game does not appear to work. * Creating social projects with negative bonuses does not work. * The AI does not properly use new buildings if you create them for it. Now, you could just overwrite the "PlanetaryImprovements.xml" file in your GalCiv directory, but that really isn't the appropriate way to be writing a mod. Anomalies Adding your own anomalies can be found here: http://forums.galciv2.com/?ForumID=348&AID=101130 (someone might want to turn these into a separate article here) Creating custom planets How to do that can be found here: http://forums.galciv2.com/?ForumID=348&AID=100170 http://forums.galciv2.com/?ForumID=348&AID=101114 While the instructions given in the above links do not yet work, they are expected to work once the 1.1 patch has been released. Related Links *Modding *Graphics Modding *User Interface Modding *Overview of Ability Values and Usage *CariElf's Modding Guide *